A system is suspended as follows:
If a GC occurs during the suspend it will hang. This means that the heap was not big enough.
The binary distributions are a directory called ``tsystem''. In that directory are a bunch of files including a script called ``linkt'' which takes a .o file produced by suspend and creates an executable.
If the code to be loaded before suspending a system contains DEFINE-FOREIGN forms, files containing these forms should be loaded inside of:
(bind (((*value t-implementation-env 'make-foreign-procedure)
(*value t-implementation-env 'make-foreign)))
(load file1)
... )
In this case, the linkt script must be modified to .o files that are referenced by the DEFINE-FOREIGN expressions.
System building:
It is possible to build a system from the sources. The tsystem directory contains a file, i.e. ``sunbuild.t'' which explains how.